<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Producto_lst( $this );

	class Producto_lst extends Lst
	{
	function Producto_lst( &$oModule )
		{
			$this->Lst( $oModule );
		}

	function setLevel()
		{
			switch ( $this->getOptionView() )
			{
				case 'L':
					$this->aShowColumns = array( 'Nombre', 'Tipo','Precio', 'Stock' );
					break;
			}
		}
	function initialize()
		{
			$this->oFiltro = $this->oModule->loadClass( 'Producto_frm' );
			$this->aFields = array_merge ( (array)$this->aFields,  (array)$this->oFiltro->getFieldArray() );
			$this->aFields[bActivo] = getParam('bActivo', 1);
			$this->setTrashField( "bActivo" );
			// Setea el titulo y la descripcion de la tabla
			$this->setTitle ( "Producto" );
			$this->setSummary( "Esta tabla contiene el listado de Productos" );
			$this->addColumn ( 'Nombre', 'cdProducto', true );
			$this->setColumnAction ( 'Nombre', VER_PRODUCTO);
			$this->addColumn ( 'Descripcion', 'cDescripcion', true );
			$this->addColumn ( 'Precio', 'fiPrecio', true );
			$this->addColumn ( 'Tipo', 'cdTipoProducto', true );
			$this->addColumn ( 'Stock', 'nqStock', true );
		}
	function query()
		{
			// Arma el Query
				$cSql = "SELECT *
								FROM gtProducto AS Pro
								LEFT JOIN gcTipoProducto as TPr 
									ON TPr.ncTipoProducto = Pro.ncTipoProducto";
			// Arma el Filtro de la Consulta
				$this->oFiltro->setDefaultSearchField( "cdProducto" );
				$this->oWhere->addArray ( $this->oFiltro->getFilterdArray() , 'Pro' );
				$this->oWhere->addBool( 'Pro.bActivo', $this->aFields[bActivo] );
				return $cSql . $this->oWhere->make();
		}
	function makeListActions()
		{
			$cParametroRegistro =  $this->getFieldString();
			$this->addListAction ( AGREGAR_PRODUCTO, $cParametroRegistro, 'I' , VENTANA_SECUNDARIA);
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro = "ncProducto=" . $aRow["ncProducto"];
			$this->addRowAction ( MODIFICAR_PRODUCTO, $cParametroRegistro , '', VENTANA_SECUNDARIA );
			if ( $aRow[bActivo] )
				$this->addRowAction ( TRASH_PRODUCTO ,  $cParametroRegistro );
			else
			{
				$this->addRowAction ( UNTRASH_PRODUCTO ,  $cParametroRegistro );
				$this->addRowAction ( ELIMINAR_PRODUCTO ,  $cParametroRegistro );
			}
		}
	}
?>